/*  -*- mode: c++; coding: utf-8; c-file-style: "stroustrup"; -*-

    Copyright 2008 Asier Aguirre <asier.aguirre@gmail.com>
    This file is part of Intromit.

    Intromit is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Intromit is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Intromit.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef KEY_NAMES_HH
#define KEY_NAMES_HH

//! \addtogroup introsight_framework
//@{

// INCLUDES
#include "event_mng.hh"

// key names
extern const char *key_names[EM_KEYMAP_SIZE];

// keycode definitions
#define IS_KN_OFF(x)     ((x)+8)
#define IS_KN_NONE       0
#define IS_KN_Esc        IS_KN_OFF(0x01)
#define IS_KN_1          IS_KN_OFF(0x02)
#define IS_KN_2          IS_KN_OFF(0x03)
#define IS_KN_3          IS_KN_OFF(0x04)
#define IS_KN_4          IS_KN_OFF(0x05)
#define IS_KN_5          IS_KN_OFF(0x06)
#define IS_KN_6          IS_KN_OFF(0x07)
#define IS_KN_7          IS_KN_OFF(0x08)
#define IS_KN_8          IS_KN_OFF(0x09)
#define IS_KN_9          IS_KN_OFF(0x0A)
#define IS_KN_0          IS_KN_OFF(0x0B)
#define IS_KN_Question   IS_KN_OFF(0x0C)
#define IS_KN_OpenExcl   IS_KN_OFF(0x0D)
#define IS_KN_Del        IS_KN_OFF(0x0E)
#define IS_KN_Tab        IS_KN_OFF(0x0F)
#define IS_KN_Q          IS_KN_OFF(0x10)
#define IS_KN_W          IS_KN_OFF(0x11)
#define IS_KN_E          IS_KN_OFF(0x12)
#define IS_KN_R          IS_KN_OFF(0x13)
#define IS_KN_T          IS_KN_OFF(0x14)
#define IS_KN_Y          IS_KN_OFF(0x15)
#define IS_KN_U          IS_KN_OFF(0x16)
#define IS_KN_I          IS_KN_OFF(0x17)
#define IS_KN_O          IS_KN_OFF(0x18)
#define IS_KN_P          IS_KN_OFF(0x19)
#define IS_KN_SQBOpen    IS_KN_OFF(0x1A)
#define IS_KN_SQBClose   IS_KN_OFF(0x1B)
#define IS_KN_Enter      IS_KN_OFF(0x1C)
#define IS_KN_CtrlLeft   IS_KN_OFF(0x1D)
#define IS_KN_A          IS_KN_OFF(0x1E)
#define IS_KN_S          IS_KN_OFF(0x1F)
#define IS_KN_D          IS_KN_OFF(0x20)
#define IS_KN_F          IS_KN_OFF(0x21)
#define IS_KN_G          IS_KN_OFF(0x22)
#define IS_KN_H          IS_KN_OFF(0x23)
#define IS_KN_J          IS_KN_OFF(0x24)
#define IS_KN_K          IS_KN_OFF(0x25)
#define IS_KN_L          IS_KN_OFF(0x26)
#define IS_KN_NAcute     IS_KN_OFF(0x27)
#define IS_KN_BraOpen    IS_KN_OFF(0x28)
#define IS_KN_BackSlash  IS_KN_OFF(0x29)
#define IS_KN_ShiftLeft  IS_KN_OFF(0x2A)
#define IS_KN_BraClose   IS_KN_OFF(0x2B)
#define IS_KN_Z          IS_KN_OFF(0x2C)
#define IS_KN_X          IS_KN_OFF(0x2D)
#define IS_KN_C          IS_KN_OFF(0x2E)
#define IS_KN_V          IS_KN_OFF(0x2F)
#define IS_KN_B          IS_KN_OFF(0x30)
#define IS_KN_N          IS_KN_OFF(0x31)
#define IS_KN_M          IS_KN_OFF(0x32)
#define IS_KN_Colon      IS_KN_OFF(0x33)
#define IS_KN_Dot        IS_KN_OFF(0x34)
#define IS_KN_Hyphen     IS_KN_OFF(0x35)
#define IS_KN_ShiftRight IS_KN_OFF(0x36)
#define IS_KN_KAster     IS_KN_OFF(0x37)
#define IS_KN_AltLeft    IS_KN_OFF(0x38)
#define IS_KN_Space      IS_KN_OFF(0x39)
#define IS_KN_ShiftLock  IS_KN_OFF(0x3A)
#define IS_KN_F1         IS_KN_OFF(0x3B)
#define IS_KN_F2         IS_KN_OFF(0x3C)
#define IS_KN_F3         IS_KN_OFF(0x3D)
#define IS_KN_F4         IS_KN_OFF(0x3E)
#define IS_KN_F5         IS_KN_OFF(0x3F)
#define IS_KN_F6         IS_KN_OFF(0x40)
#define IS_KN_F7         IS_KN_OFF(0x41)
#define IS_KN_F8         IS_KN_OFF(0x42)
#define IS_KN_F9         IS_KN_OFF(0x43)
#define IS_KN_F10        IS_KN_OFF(0x44)
#define IS_KN_BlockNum   IS_KN_OFF(0x45)
#define IS_KN_BlockDesp  IS_KN_OFF(0x46)
#define IS_KN_K7         IS_KN_OFF(0x47)
#define IS_KN_K8         IS_KN_OFF(0x48)
#define IS_KN_K9         IS_KN_OFF(0x49)
#define IS_KN_KHyphen    IS_KN_OFF(0x4A)
#define IS_KN_K4         IS_KN_OFF(0x4B)
#define IS_KN_K5         IS_KN_OFF(0x4C)
#define IS_KN_K6         IS_KN_OFF(0x4D)
#define IS_KN_KPlus      IS_KN_OFF(0x4E)
#define IS_KN_K1         IS_KN_OFF(0x4F)
#define IS_KN_K2         IS_KN_OFF(0x50)
#define IS_KN_K3         IS_KN_OFF(0x51)
#define IS_KN_K0         IS_KN_OFF(0x52)
#define IS_KN_KDot       IS_KN_OFF(0x53)
#define IS_KN_ReqSys     IS_KN_OFF(0x54)
#define IS_KN_Less       IS_KN_OFF(0x56)
#define IS_KN_F11        IS_KN_OFF(0x57)
#define IS_KN_F12        IS_KN_OFF(0x58)
#define IS_KN_Home       IS_KN_OFF(0x59)
#define IS_KN_Up         IS_KN_OFF(0x5A)
#define IS_KN_RePag      IS_KN_OFF(0x5B)
#define IS_KN_Left       IS_KN_OFF(0x5C)
#define IS_KN_Right      IS_KN_OFF(0x5E)
#define IS_KN_End        IS_KN_OFF(0x5F)
#define IS_KN_Down       IS_KN_OFF(0x60)
#define IS_KN_AvPag      IS_KN_OFF(0x61)
#define IS_KN_Insert     IS_KN_OFF(0x62)
#define IS_KN_Supr       IS_KN_OFF(0x63)
#define IS_KN_KIntro     IS_KN_OFF(0x64)
#define IS_KN_CtrlRight  IS_KN_OFF(0x65)
#define IS_KN_Pause      IS_KN_OFF(0x66)
#define IS_KN_PetSys     IS_KN_OFF(0x67)
#define IS_KN_KSlash     IS_KN_OFF(0x68)
#define IS_KN_AltGr      IS_KN_OFF(0x69)
#define IS_KN_WLeft      IS_KN_OFF(0x6B)
#define IS_KN_WRight     IS_KN_OFF(0x6C)
#define IS_KN_Unk        IS_KN_OFF(0x6D)

// @}
#endif
